#include #include #include #include #include #define len 100 #define base 10000 using namespace std; struct big_num { int N[len+1]; big_num() { fill(N, N+len, 0); } big_num(int n) { fill(N, N+len, 0); N[0]=n; reduce(); } int size() const { for (int k = len; k>0 ; --k) { if (N[k]!=0) {return k;} } return 0; } void reduce() { for (int k = 0; k= 0; i--) { if (flag) { printf("%04d", N[i]); } else if (N[i]) { printf("%d", N[i]); flag = true; } } if (!flag) printf("0\n"); else printf("\n"); } // big_num ^ int big_num pow(int b) { big_num ans = *this; for (int k = 0;k